<!DOCTYPE html>
<html lang=en>
<head>
  <meta charset="utf-8">
  
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
  <meta name="renderer" content="webkit">
  <meta http-equiv="Cache-Control" content="no-transform" />
  <meta http-equiv="Cache-Control" content="no-siteapp" />
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="format-detection" content="telephone=no,email=no,adress=no">
  <!-- Color theme for statusbar -->
  <meta name="theme-color" content="#000000" />
  <!-- 强制页面在当前窗口以独立页面显示,防止别人在框架里调用页面 -->
  <meta http-equiv="window-target" content="_top" />
  
  
  <title>ObjectDetection(3)_Fast_RCNN | 鲨鱼之家</title>
  <meta name="description" content="概述 Fast RCNN的Architecture  整体结构 The RoI pooling layer   训练模型用到的部分方法  Initializing from pre-trained networks RCNN和SPP训练的低效 Multi-task loss 数据增强 微调哪些层     概述 背景：  RCNN:  Training is a multi-stage pipe">
<meta property="og:type" content="article">
<meta property="og:title" content="ObjectDetection(3)_Fast_RCNN">
<meta property="og:url" content="http://tina-yao.gitee.io/bigbig-shark/2022/08/16/ObjectDetection-3-Fast-RCNN/index.html">
<meta property="og:site_name" content="大鲨鱼">
<meta property="og:description" content="概述 Fast RCNN的Architecture  整体结构 The RoI pooling layer   训练模型用到的部分方法  Initializing from pre-trained networks RCNN和SPP训练的低效 Multi-task loss 数据增强 微调哪些层     概述 背景：  RCNN:  Training is a multi-stage pipe">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="https://gitee.com/tina-yao/bigbig-shark/raw/master/imgs/FastRCNNimg/1.png">
<meta property="og:image" content="https://gitee.com/tina-yao/bigbig-shark/raw/master/imgs/FastRCNNimg/2.png">
<meta property="og:image" content="https://gitee.com/tina-yao/bigbig-shark/raw/master/imgs/FastRCNNimg/3.png">
<meta property="article:published_time" content="2022-08-16T06:01:10.000Z">
<meta property="article:modified_time" content="2022-09-27T06:43:26.717Z">
<meta property="article:author" content="BigbigShark">
<meta property="article:tag" content="目标检测">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://gitee.com/tina-yao/bigbig-shark/raw/master/imgs/FastRCNNimg/1.png">
  <!-- Canonical links -->
  <link rel="canonical" href="http://tina-yao.gitee.io/bigbig-shark/2022/08/16/ObjectDetection-3-Fast-RCNN/index.html">
  
    <link rel="alternate" href="/atom.xml" title="大鲨鱼" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png" type="image/x-icon">
  
  
<link rel="stylesheet" href="/bigbig-shark/css/style.css">

  
  
  
  
<meta name="generator" content="Hexo 5.4.0"></head>


<body class="main-center theme-purple# 主题颜色 theme-black theme-blue theme-green theme-purple" itemscope itemtype="http://schema.org/WebPage">
  <header class="header" itemscope itemtype="http://schema.org/WPHeader">
  <div class="slimContent">
    <div class="navbar-header">
      
      
      <div class="profile-block text-center">
        <a id="avatar" href="https://tina-yao.gitee.io/bigbig-shark/" target="_blank">
          <img class="img-circle img-rotate" src="/bigbig-shark/images/avatar.jpg" width="200" height="200">
        </a>
        <h2 id="name" class="hidden-xs hidden-sm">大鲨鱼</h2>
        <h3 id="title" class="hidden-xs hidden-sm hidden-md">CV&amp;Robots</h3>
        <small id="location" class="text-muted hidden-xs hidden-sm"><i class="icon icon-map-marker"></i> Wuhan, China</small>
      </div>
      
      <div class="search" id="search-form-wrap">

    <form class="search-form sidebar-form">
        <div class="input-group">
            <input type="text" class="search-form-input form-control" placeholder="Search" />
            <span class="input-group-btn">
                <button type="submit" class="search-form-submit btn btn-flat" onclick="return false;"><i class="icon icon-search"></i></button>
            </span>
        </div>
    </form>
    <div class="ins-search">
  <div class="ins-search-mask"></div>
  <div class="ins-search-container">
    <div class="ins-input-wrapper">
      <input type="text" class="ins-search-input" placeholder="Type something..." x-webkit-speech />
      <button type="button" class="close ins-close ins-selectable" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
    </div>
    <div class="ins-section-wrapper">
      <div class="ins-section-container"></div>
    </div>
  </div>
</div>


</div>
      <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target="#main-navbar" aria-controls="main-navbar" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>
    <nav id="main-navbar" class="collapse navbar-collapse" itemscope itemtype="http://schema.org/SiteNavigationElement" role="navigation">
      <ul class="nav navbar-nav main-nav menu-highlight">
        
        
        <li class="menu-item menu-item-home">
          <a href="/bigbig-shark/.">
            
            <i class="icon icon-home-fill"></i>
            
            <span class="menu-title">Home</span>
          </a>
        </li>
        
        
        <li class="menu-item menu-item-archives">
          <a href="/bigbig-shark/archives">
            
            <i class="icon icon-archives-fill"></i>
            
            <span class="menu-title">Archives</span>
          </a>
        </li>
        
        
        <li class="menu-item menu-item-categories">
          <a href="/bigbig-shark/categories">
            
            <i class="icon icon-folder"></i>
            
            <span class="menu-title">Categories</span>
          </a>
        </li>
        
        
        <li class="menu-item menu-item-tags">
          <a href="/bigbig-shark/tags">
            
            <i class="icon icon-tags"></i>
            
            <span class="menu-title">Tags</span>
          </a>
        </li>
        
        
        <li class="menu-item menu-item-links">
          <a href="/bigbig-shark/links">
            
            <i class="icon icon-friendship"></i>
            
            <span class="menu-title">Links</span>
          </a>
        </li>
        
        
        <li class="menu-item menu-item-about">
          <a href="/bigbig-shark/about">
            
            <i class="icon icon-cup-fill"></i>
            
            <span class="menu-title">About</span>
          </a>
        </li>
        
      </ul>
      
	
    <ul class="social-links">
    	
        <li><a href="https://gitee.com/tina-yao" target="_blank" title="Gitee" data-toggle=tooltip data-placement=top><i class="icon icon-gitee"></i></a></li>
        
    </ul>

    </nav>
  </div>
</header>

  
    <aside class="sidebar" itemscope itemtype="http://schema.org/WPSideBar">
  <div class="slimContent">
    
      <div class="widget">
    <h3 class="widget-title">Board</h3>
    <div class="widget-body">
        <div id="board">
            <div class="content">
                <p>欢迎交流与分享经验!</p>
            </div>
        </div>
    </div>
</div>

    
      
  <div class="widget">
    <h3 class="widget-title">Categories</h3>
    <div class="widget-body">
      <ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/bigbig-shark/categories/AI/">AI</a><span class="category-list-count">1</span><ul class="category-list-child"><li class="category-list-item"><a class="category-list-link" href="/bigbig-shark/categories/AI/ML/">ML</a><span class="category-list-count">1</span></li></ul></li><li class="category-list-item"><a class="category-list-link" href="/bigbig-shark/categories/Concepts/">Concepts</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/bigbig-shark/categories/Robots/">Robots</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/bigbig-shark/categories/%E5%8D%8A%E6%97%A5%E9%97%B2/">半日闲</a><span class="category-list-count">5</span></li><li class="category-list-item"><a class="category-list-link" href="/bigbig-shark/categories/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/">数学建模</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/bigbig-shark/categories/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/">数据分析</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/bigbig-shark/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/">计算机视觉</a><span class="category-list-count">30</span></li></ul>
    </div>
  </div>


    
      
  <div class="widget">
    <h3 class="widget-title">Tag Cloud</h3>
    <div class="widget-body tagcloud">
      <a href="/bigbig-shark/tags/CNN-backbones/" style="font-size: 13.67px;">CNN_backbones</a> <a href="/bigbig-shark/tags/OpenCV/" style="font-size: 13px;">OpenCV</a> <a href="/bigbig-shark/tags/Python/" style="font-size: 13px;">Python</a> <a href="/bigbig-shark/tags/ROS/" style="font-size: 13px;">ROS</a> <a href="/bigbig-shark/tags/%E4%BB%A3%E7%A0%81/" style="font-size: 13px;">代码</a> <a href="/bigbig-shark/tags/%E5%85%83%E5%AE%87%E5%AE%99/" style="font-size: 13px;">元宇宙</a> <a href="/bigbig-shark/tags/%E5%85%B4%E8%B6%A3/" style="font-size: 13px;">兴趣</a> <a href="/bigbig-shark/tags/%E5%9C%BA%E6%99%AF%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB/" style="font-size: 13px;">场景文字识别</a> <a href="/bigbig-shark/tags/%E6%91%98%E6%8A%84/" style="font-size: 13.33px;">摘抄</a> <a href="/bigbig-shark/tags/%E6%95%B0%E6%8D%AE%E9%9B%86/" style="font-size: 13px;">数据集</a> <a href="/bigbig-shark/tags/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/" style="font-size: 14px;">目标检测</a> <a href="/bigbig-shark/tags/%E7%BE%8E%E8%B5%9B/" style="font-size: 13px;">美赛</a> <a href="/bigbig-shark/tags/%E8%81%9A%E7%B1%BB/" style="font-size: 13px;">聚类</a> <a href="/bigbig-shark/tags/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/" style="font-size: 13.33px;">自动驾驶</a> <a href="/bigbig-shark/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%893D/" style="font-size: 13px;">计算机视觉3D</a> <a href="/bigbig-shark/tags/%E8%BD%BB%E9%87%8F%E7%BA%A7/" style="font-size: 13px;">轻量级</a>
    </div>
  </div>

    
  </div>
</aside>

  
  
<main class="main" role="main">
  <div class="content">
  <article id="post-ObjectDetection-3-Fast-RCNN" class="article article-type-post" itemscope itemtype="http://schema.org/BlogPosting">
    
    <div class="article-header">
      
        
  
    <h1 class="article-title" itemprop="name">
      ObjectDetection(3)_Fast_RCNN
    </h1>
  

      
      <div class="article-meta">
        <span class="article-date">
    <i class="icon icon-calendar-check"></i>
	<a href="/bigbig-shark/2022/08/16/ObjectDetection-3-Fast-RCNN/" class="article-date">
	  <time datetime="2022-08-16T06:01:10.000Z" itemprop="datePublished">2022-08-16</time>
	</a>
</span>
        
  <span class="article-category">
    <i class="icon icon-folder"></i>
    <a class="article-category-link" href="/bigbig-shark/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/">计算机视觉</a>
  </span>

        
  <span class="article-tag">
    <i class="icon icon-tags"></i>
	<a class="article-tag-link-link" href="/bigbig-shark/tags/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/" rel="tag">目标检测</a>
  </span>


        

	<span class="article-read hidden-xs">
    	<i class="icon icon-eye-fill" aria-hidden="true"></i>
    	<span id="/bigbig-shark/2022/08/16/ObjectDetection-3-Fast-RCNN/" class="leancloud_visitors"  data-flag-title="ObjectDetection(3)_Fast_RCNN">
			<span class="leancloud-visitors-count">0</span>
		</span>
    </span>

        <span class="post-comment"><i class="icon icon-comment"></i> <a href="/bigbig-shark/2022/08/16/ObjectDetection-3-Fast-RCNN/#comments" class="article-comment-link">Comments</a></span>
        
	
		<span class="post-wordcount hidden-xs" itemprop="wordCount">Word Count: 1.1k(words)</span>
	
	
		<span class="post-readcount hidden-xs" itemprop="timeRequired">Read Count: 5(minutes)</span>
	

      </div>
    </div>
    <div class="article-entry marked-body" itemprop="articleBody">
      
        <!-- toc -->
<ul>
<li><a href="#%E6%A6%82%E8%BF%B0">概述</a></li>
<li><a href="#fast-rcnn%E7%9A%84architecture">Fast RCNN的Architecture</a>
<ul>
<li><a href="#%E6%95%B4%E4%BD%93%E7%BB%93%E6%9E%84">整体结构</a></li>
<li><a href="#the-roi-pooling-layer">The RoI pooling layer</a></li>
</ul>
</li>
<li><a href="#%E8%AE%AD%E7%BB%83%E6%A8%A1%E5%9E%8B%E7%94%A8%E5%88%B0%E7%9A%84%E9%83%A8%E5%88%86%E6%96%B9%E6%B3%95">训练模型用到的部分方法</a>
<ul>
<li><a href="#initializing-from-pre-trained-networks">Initializing from pre-trained networks</a></li>
<li><a href="#rcnn%E5%92%8Cspp%E8%AE%AD%E7%BB%83%E7%9A%84%E4%BD%8E%E6%95%88">RCNN和SPP训练的低效</a></li>
<li><a href="#multi-task-loss">Multi-task loss</a></li>
<li><a href="#%E6%95%B0%E6%8D%AE%E5%A2%9E%E5%BC%BA">数据增强</a></li>
<li><a href="#%E5%BE%AE%E8%B0%83%E5%93%AA%E4%BA%9B%E5%B1%82">微调哪些层</a></li>
</ul>
</li>
</ul>
<!-- tocstop -->
<h2><span id="概述">概述</span></h2>
<p><strong>背景</strong>：</p>
<ul>
<li>RCNN:
<ol>
<li>Training is a multi-stage pipeline.</li>
<li>Training is expensive in space and time. Features are written to disk.</li>
<li>Object detection is slow.</li>
</ol>
</li>
<li>SPPnet: RCNN is slow because it performs a ConvNet forward pass for each object proposal, without sharing computation. SPPnets were proposed to speed up RCNN by sharing computation. However,
<ol>
<li>Training is still a multi-stage pipeline.</li>
<li>Features are also written to disk.</li>
<li><strong>The fine-tuning algorithm proposed cannot update the convolutional layers that precede the SPP</strong>. Thus this fixed convolutional layers limit the accuracy of very deep networks.</li>
</ol>
</li>
<li>目标检测追求的目标：The accurate localization of objects. 随之带来两个首要挑战：
<ol>
<li>需要处理非常多的proposals；</li>
<li>Proposals只是一个很粗糙的定位框选，需要优化成更加准确的。</li>
<li>而一般的想要解决上述两个问题的方法又会牺牲速度、准确度，或者简洁程度。</li>
</ol>
</li>
</ul>
<p><strong>核心</strong>：A single-stage training algorithm that jointly learns to classify object proposals and refine their spatial locations.</p>
<p><strong>改进</strong>：The Fast RCNN method has several advantages:</p>
<ol>
<li>Higher detection quality (mAP) than R-CNN, SPPnet</li>
<li>Training is single-stage, using a multi-task loss</li>
<li>Training can update all network layers</li>
<li>No disk storage is required for feature caching</li>
</ol>
<h2><span id="fast-rcnn的architecture">Fast RCNN的Architecture</span></h2>
<h3><span id="整体结构">整体结构</span></h3>
<p><img src="https://gitee.com/tina-yao/bigbig-shark/raw/master/imgs/FastRCNNimg/1.png" alt></p>
<ul>
<li>Input: An entire image + a set of object proposals (RoIs)</li>
<li>Use CNN (Pooling: max pooling) to produce a conv feature map.</li>
<li>Then, for each object proposal a region of interest (RoI) pooling layer extracts a fixed-length feature vector from the feature map.<font color="red">ROI是怎么得到的：Selective Search，而FasterRCNN就使用了RPN（一种FPN）</font></li>
<li>Each feature vector is fed into a sequence of fully connected layers that finally branch into two sibling output layers:
<ul>
<li>one that produces softmax probability estimates over K objects classes plus a catch-all “background” class</li>
<li>and another layer that outputs four real-valued numbers for each of the K object classes. Each set of 4 values encodes refined bounding-box positions for one of the K classes.</li>
</ul>
</li>
</ul>
<h3><span id="the-roi-pooling-layer">The RoI pooling layer</span></h3>
<ul>
<li>实质上就是在RoI上的max pooling</li>
<li>RoI max pooling works by dividing the $h \times w$ RoI window into an $H \times W$ grid of sub-windows of approxiamate size $h/H \times w/W $ and then max-pooling the values in each sub-window into the corresponding output grid cell.</li>
<li>Pooling is applied independently to each feature map channel, as in standard max pooling.</li>
<li>由上面的描述可以知道，RoI max-pooling实质上就是特殊情况下的SPP。</li>
</ul>
<h2><span id="训练模型用到的部分方法">训练模型用到的部分方法</span></h2>
<h3><span id="initializing-from-pre-trained-networks">Initializing from pre-trained networks</span></h3>
<p>完成预训练后，利用其初始化自己的网络主要分三步走：</p>
<ol>
<li>将预训练模型的CNN的最后一层max pooling层替换为RoI pooling层；</li>
<li>将整个预训练模型的最后一层，也就是全连接层和softmax层替换为有两个分支的全连接层；</li>
<li>将输入改为：a list of images and a list of RoIs in those images。</li>
</ol>
<h3><span id="rcnn和spp训练的低效">RCNN和SPP训练的低效</span></h3>
<p><strong>低效的原因</strong>：因为在RCNN和SPP中，每一个RoI都有很大的感受野，经常覆盖了整个图片，再加上前向传播是必须处理整个感受野的，所以训练时的输入太大了，导致低效。</p>
<p><strong>解决方法</strong>：Hierarchical sampling</p>
<p>既然感受野太大了，我们就减小每次前向的感受野；同时利用特征共享，即 RoIs from the same image share computation and memory in the forward and backward passes。</p>
<p><strong>更具体的理解</strong>：In Fast RCNN training, stochastic gradient descent (SGD) minibatches are sampled hierarchically, first by sampling N images and then by sampling R/N RoIs from each image.  Making N small decreases mini-batch computation. For example, when using N = 2 and R = 128, the proposed training scheme is roughly 64× faster than sampling one RoI from 128 different images (i.e., the R-CNN and SPPnet strategy).</p>
<p><strong>该方法的表现</strong>：迭代次数比RCNN还少，收敛得更快，结果仍然很好。</p>
<h3><span id="multi-task-loss">Multi-task loss</span></h3>
<p>与单独地训练分类相比，该措施可以提高分类准确度。</p>
<p><img src="https://gitee.com/tina-yao/bigbig-shark/raw/master/imgs/FastRCNNimg/2.png" alt></p>
<p><img src="https://gitee.com/tina-yao/bigbig-shark/raw/master/imgs/FastRCNNimg/3.png" alt></p>
<p>如上两图，可以发现：</p>
<ul>
<li>对于smooth函数，当|x| &lt; 1时，结果一定是小于0.5的，且结果还有个平方；当|x| &gt;= 1时，其结果一定是大于等于0.5的，且结果不算小。可以认为，对于犯错轻的，小惩；对于犯错重的，大惩。即以0.5为界，小错小罚，大错大罚（且依旧减去了0.5）。即上图所谓less sensitive。</li>
<li>函数(1)中的$\lambda$是用来权衡两个任务的重要程度。本实验所有地方都令其等于1。</li>
</ul>
<h3><span id="数据增强">数据增强</span></h3>
<p>在训练过程中，将一半的图片进行了翻转。</p>
<h3><span id="微调哪些层">微调哪些层</span></h3>
<ul>
<li>对于不是很深的网络，只需要微调全连接层就够了；但对于较深的网络如VGG16，就很有必要微调卷积层。</li>
<li>但并不是所有卷积层都需要微调，实验证明，对于前面的，特别是第一个卷积层，是不需要微调的，一般都是微调偏后的卷积层。</li>
</ul>

      
    </div>
    <div class="article-footer">
      <blockquote class="mt-2x">
  <ul class="post-copyright list-unstyled">
    
    <li class="post-copyright-link hidden-xs">
      <strong>本文链接：</strong>
      <a href="http://tina-yao.gitee.io/bigbig-shark/2022/08/16/ObjectDetection-3-Fast-RCNN/" title="ObjectDetection(3)_Fast_RCNN" target="_blank" rel="external">http://tina-yao.gitee.io/bigbig-shark/2022/08/16/ObjectDetection-3-Fast-RCNN/</a>
    </li>
    
    <li class="post-copyright-license">
      <strong>版权声明： </strong> 本博客所有文章除特别声明外，均采用 <a href="http://creativecommons.org/licenses/by/4.0/deed.zh" target="_blank" rel="external">CC BY 4.0 CN协议</a> 许可协议。转载请注明出处！
    </li>
  </ul>
</blockquote>


<div class="panel panel-default panel-badger">
  <div class="panel-body">
    <figure class="media">
      <div class="media-left">
        <a href="https://tina-yao.gitee.io/bigbig-shark/" target="_blank" class="img-burn thumb-sm visible-lg">
          <img src="/bigbig-shark/images/avatar.jpg" class="img-rounded w-full" alt="">
        </a>
      </div>
      <div class="media-body">
        <h3 class="media-heading"><a href="https://tina-yao.gitee.io/bigbig-shark/" target="_blank"><span class="text-dark">大鲨鱼</span><small class="ml-1x">CV&amp;Robots</small></a></h3>
        <div>格物致知，诚意力行。</div>
      </div>
    </figure>
  </div>
</div>


    </div>
  </article>
  
    
  <section id="comments">
  	
      <div id="vcomments"></div>
    
  </section>


  
</div>

  <nav class="bar bar-footer clearfix" data-stick-bottom>
  <div class="bar-inner">
  
  <ul class="pager pull-left">
    
    <li class="prev">
      <a href="/bigbig-shark/2022/08/16/ObjectDetection-4-Faster-RCNN/" title="ObjectDetection(4)_Faster_RCNN"><i class="icon icon-angle-left" aria-hidden="true"></i><span>&nbsp;&nbsp;Newer</span></a>
    </li>
    
    
    <li class="next">
      <a href="/bigbig-shark/2022/08/15/ObjectDetection-2-SPP/" title="ObjectDetection(2)_SPP"><span>Older&nbsp;&nbsp;</span><i class="icon icon-angle-right" aria-hidden="true"></i></a>
    </li>
    
    
  </ul>
  
  
  <!-- Button trigger modal -->
  <button type="button" class="btn btn-fancy btn-donate pop-onhover bg-gradient-warning" data-toggle="modal" data-target="#donateModal"><span>$</span></button>
  <!-- <div class="wave-icon wave-icon-danger btn-donate" data-toggle="modal" data-target="#donateModal">
    <div class="wave-circle"><span class="icon"><i class="icon icon-bill"></i></span></div>
  </div> -->
  
  
  <div class="bar-right">
    
    <div class="share-component" data-sites="weibo,qq,wechat" data-mobile-sites="weibo,qq"></div>
    
  </div>
  </div>
</nav>
  
<!-- Modal -->
<div class="modal modal-center modal-small modal-xs-full fade" id="donateModal" tabindex="-1" role="dialog">
  <div class="modal-dialog" role="document">
    <div class="modal-content donate">
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
      <div class="modal-body">
        <div class="donate-box">
          <div class="donate-head">
            <p>Maybe you could buy me a cup of coffee.</p>
          </div>
          <div class="tab-content">
            <div role="tabpanel" class="tab-pane fade active in" id="alipay">
              <div class="donate-payimg">
                <img src="https://gitee.com/tina-yao/bigbig-shark/raw/master/images/donate/alipayimg.PNG#images/donate/alipayimg.png" alt="Scan Qrcode" title="Scan" />
              </div>
              <p class="text-muted mv">Scan this qrcode</p>
              <p class="text-grey">Open alipay app scan this qrcode, buy me a coffee!</p>
            </div>
            <div role="tabpanel" class="tab-pane fade" id="wechatpay">
              <div class="donate-payimg">
                <img src="https://gitee.com/tina-yao/bigbig-shark/raw/master/images/donate/wechatpayimg.PNG#images/donate/wechatpayimg.png" alt="Scan Qrcode" title="Scan" />
              </div>
              <p class="text-muted mv">Scan this qrcode</p>
              <p class="text-grey">Open wechat app scan this qrcode, buy me a coffee!</p>
            </div>
          </div>
          <div class="donate-footer">
            <ul class="nav nav-tabs nav-justified" role="tablist">
              <li role="presentation" class="active">
                <a href="#alipay" id="alipay-tab" role="tab" data-toggle="tab" aria-controls="alipay" aria-expanded="true"><i class="icon icon-alipay"></i> alipay</a>
              </li>
              <li role="presentation" class="">
                <a href="#wechatpay" role="tab" id="wechatpay-tab" data-toggle="tab" aria-controls="wechatpay" aria-expanded="false"><i class="icon icon-wepay"></i> wechat payment</a>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>



</main>

  <footer class="footer" itemscope itemtype="http://schema.org/WPFooter">
	
	
    <ul class="social-links">
    	
        <li><a href="https://gitee.com/tina-yao" target="_blank" title="Gitee" data-toggle=tooltip data-placement=top><i class="icon icon-gitee"></i></a></li>
        
    </ul>

    <div class="copyright">
    	
        &copy; 2023 BigbigShark
        
        <div class="publishby">
        <!--
        	Theme by <a href="https://github.com/cofess" target="_blank"> cofess </a>base on <a href="https://github.com/cofess/hexo-theme-pure" target="_blank">pure</a>.
        -->
        </div>
    </div>
</footer>
  <script src="//cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<script>
window.jQuery || document.write('<script src="js/jquery.min.js"><\/script>')
</script>

<script src="/bigbig-shark/js/plugin.min.js"></script>


<script src="/bigbig-shark/js/application.js"></script>


    <script>
(function (window) {
    var INSIGHT_CONFIG = {
        TRANSLATION: {
            POSTS: 'Posts',
            PAGES: 'Pages',
            CATEGORIES: 'Categories',
            TAGS: 'Tags',
            UNTITLED: '(Untitled)',
        },
        ROOT_URL: '/bigbig-shark/',
        CONTENT_URL: '/bigbig-shark/content.json',
    };
    window.INSIGHT_CONFIG = INSIGHT_CONFIG;
})(window);
</script>

<script src="/bigbig-shark/js/insight.js"></script>






   




   
    
  <script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
  <script src="//cdn.jsdelivr.net/npm/valine"></script>
  <script type="text/javascript">
  var GUEST = ['nick', 'mail', 'link'];
  var meta = 'nick,mail,link';
  meta = meta.split(',').filter(function(item) {
    return GUEST.indexOf(item) > -1;
  });
  new Valine({
    el: '#vcomments',
    verify: false,
    notify: false,
    appId: '8pTCCvyyLGXskH0XW0fWHg7l-gzGzoHsz',
    appKey: 'id3rlCPRdbEoSpUfhJgcLhDO',
    placeholder: 'Just go go',
    avatar: 'mm',
    meta: meta,
    pageSize: '10' || 10,
    visitor: true
  });
  </script>

     







<script src="/bigbig-shark/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginModelPath":"assets/","model":{"jsonPath":"/bigbig-shark/live2dw/assets/tororo.model.json"},"display":{"position":null,"width":300,"height":600},"log":false,"pluginJsPath":"lib/","pluginRootPath":"live2dw/","tagMode":false});</script></body>
</html>